﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados;
using System.ComponentModel;

namespace Negocios
{   
    [DataObject]
    public class AlbumBLL
    {
        [DataObjectMethodAttribute(DataObjectMethodType.Insert, true)]
        public bool Insere(Album a)
        {
            try
            {
                return AlbumDAL.Insere(a.Nome, a.CodAno, a.Usuario);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao inserir Entidade" + a.Nome);
            }

        }

        public Album Consultar(int codigo)
        {
            DSMPTUDO.T_ALBUMDataTable albumDT = AlbumDAL.ConsultaPorCodigo(codigo);
            if(albumDT.Count ==1)
                return (new Album(codigo, albumDT[0].tx_nome, albumDT[0].nr_ano, albumDT[0].tx_usuario));
            else 
            return null;
        }


        public bool Atualizar(Album a)
        {
            try
            {
                return AlbumDAL.Atualiza(a.Nome, a.CodAno, a.Usuario, a.Cod);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao atualizar Entidade" + a.Nome);
            }

        }

        public bool Excluir(Album a)
        {
            try
            {
                return AlbumDAL.Remove(a.Cod);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Remover Entidade" + a.Nome);
            }

        }
                   
        public static List<Album> ConsultaTodos()
        {
            List<Album> lista = new List<Album>();
            DSMPTUDO.T_ALBUMDataTable albumDT = AlbumDAL.ConsultaTodos();
            for (int i = 0; i < albumDT.Count; i++)
            {
                Album a = new Album(albumDT[i].nr_codigo, albumDT[i].tx_nome, albumDT[i].nr_ano, albumDT[i].tx_usuario);
                lista.Add(a);
            }
            return lista;
        }

    }
}
